home *** CD-ROM | disk | FTP | other *** search
/ Aminet 44 / Aminet 44 (2001)(GTI - Schatztruhe)[!][Aug 2001].iso / Aminet / dev / misc / AmigaSDLsrc.lha / amisrc / SDL_wave.h < prev    next >
C/C++ Source or Header  |  2001-04-29  |  2KB  |  66 lines

  1. /*
  2.     SDL - Simple DirectMedia Layer
  3.     Copyright (C) 1997, 1998, 1999, 2000, 2001  Sam Lantinga
  4.  
  5.     This library is free software; you can redistribute it and/or
  6.     modify it under the terms of the GNU Library General Public
  7.     License as published by the Free Software Foundation; either
  8.     version 2 of the License, or (at your option) any later version.
  9.  
  10.     This library is distributed in the hope that it will be useful,
  11.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  13.     Library General Public License for more details.
  14.  
  15.     You should have received a copy of the GNU Library General Public
  16.     License along with this library; if not, write to the Free
  17.     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  18.  
  19.     Sam Lantinga
  20.     slouken@devolution.com
  21. */
  22.  
  23. #ifdef SAVE_RCSID
  24. static char rcsid =
  25.  "@(#) $Id: SDL_wave.h,v 1.2.2.2 2001/02/10 07:20:03 hercules Exp $";
  26. #endif
  27.  
  28. /* WAVE files are little-endian */
  29.  
  30. /*******************************************/
  31. /* Define values for Microsoft WAVE format */
  32. /*******************************************/
  33. #define RIFF        0x46464952        /* "RIFF" */
  34. #define WAVE        0x45564157        /* "WAVE" */
  35. #define FACT        0x74636166        /* "fact" */
  36. #define LIST        0x5453494c        /* "LIST" */
  37. #define FMT        0x20746D66        /* "fmt " */
  38. #define DATA        0x61746164        /* "data" */
  39. #define PCM_CODE    0x0001
  40. #define MS_ADPCM_CODE    0x0002
  41. #define IMA_ADPCM_CODE    0x0011
  42. #define WAVE_MONO    1
  43. #define WAVE_STEREO    2
  44.  
  45. /* Normally, these three chunks come consecutively in a WAVE file */
  46. typedef struct WaveFMT {
  47. /* Not saved in the chunk we read:
  48.     Uint32    FMTchunk;
  49.     Uint32    fmtlen;
  50. */
  51.     Uint16    encoding;    
  52.     Uint16    channels;        /* 1 = mono, 2 = stereo */
  53.     Uint32    frequency;        /* One of 11025, 22050, or 44100 Hz */
  54.     Uint32    byterate;        /* Average bytes per second */
  55.     Uint16    blockalign;        /* Bytes per sample block */
  56.     Uint16    bitspersample;        /* One of 8, 12, 16, or 4 for ADPCM */
  57. } WaveFMT;
  58.  
  59. /* The general chunk found in the WAVE file */
  60. typedef struct Chunk {
  61.     Uint32 magic;
  62.     Uint32 length;
  63.     Uint8 *data;            /* Data includes magic and length */
  64. } Chunk;
  65.  
  66.